package com.jmb.demo;


import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;

// 这个我们用注解来演示这个代码
// 把注释的使用方法做个记录

/**
 * 1. @Component是我们的一个注解方式,里边的value值是来指定bean中的id值
 * 2. @Component本质就是我们在配置文件里实现的bean标签 <bean id="student" class="package com.jmb.demo.Student"> </bean>
 * 3. 然后我们需要在resources下添加配置文件。。
 * 4. 我们@Component(“student”) 可以省略我们的value
 * 5. 我们还可以直接就写一个@Component,不填写他的value值，他就是把我们的类名变成小写的student，也就是类的首字母小写.
 * 下边是@Component功能一样的，创建对象注解有下边这几个。
 * 6. @Repository(用在持久类的上边),放在dao的实现类上边，表示创建dao对象，dao对象是一个访问数据库的。
 * 7. @Service(用在业务层的上边)，放在service的实现类上面，创建service对象，service对象是做业务处理，可以有事务等功能
 * 8. @Controller(用在控制器上面)，放在控制器(处理器)类的上面，创建控制器对象的，控制器对象就是能够接受用户提交的参数(值)，显示请求的结果。
 * 9. 简单来说就是@Repository.@Service.@Controller他们就是给项目分层的，就是适用于不同的类型下，他们的用法一样。
 * 10. 我们还可以在方法上边加一个@Value，然后代表就是给这个方法进行一个赋值，比如在 private String name 上边加一个@Value("金天"),就是赋值
 * 11. 赋值他的底层采用的是map，加一个@Value其实就是代替了我们的set方法，因为spring底层是反射机制。
 * 12. 我们还可以在set方法上加一个@Value不过，不是很推荐使用这种用法。
 */
//@Component(value = "student")
//@Component
@Component
public class Student {
    @Value("金博博")
    private String name;
    @Value("河南开封")
    private String adders;
    @Value("24")
    private Integer age;
    public Student() {
        System.out.println("我们的Student无参构造");
    }

    public String getName() {
        return name;
    }


    public String getAdders() {
        return adders;
    }


    public Integer getAge() {
        return age;
    }

}
